package org.dbp.entrada.utils;

import org.apache.commons.lang.StringUtils;
import org.dbp.entrada.conf.enumerados.TipoNombreFichero;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Clase de utilidades en la que se apolla el generador
 * 
 * @author dbp
 * 
 */
public class GeneradorUtils {

	private static final Logger logger = LoggerFactory
			.getLogger(GeneradorUtils.class);

	private static GeneradorUtils instancia = new GeneradorUtils();

	public static GeneradorUtils getInstancia() {
		return instancia;
	}

	/**
	 * 
	 * Se encarga de procesar el nombre del fichero segun el tipo que le
	 * indiquemos, que estara definido en el tipo.
	 * 
	 * @param nombre
	 *            Nombre del fichero.
	 * @param tipo
	 *            Tipo del fichero.
	 * @return
	 */
	public String formatearNombreFichero(final String nombre,
			final TipoNombreFichero tipo) {
		logger.debug(
				"Vamos a formatear el nombre [{}], teniendo en cuenta el siguiente tipo [{}]",
				nombre, tipo);
		String valdev = null;
		switch (tipo) {
		case CAPITALIZAR: {
			valdev = StringUtils.capitalize(nombre);
			break;
		}
		case UNCAPITALIZAR: {
			valdev = StringUtils.uncapitalize(nombre);
			break;
		}
		case MAYUSCULAS: {
			valdev = StringUtils.upperCase(nombre);
			break;
		}
		case MINUSCULAS: {
			valdev = StringUtils.lowerCase(nombre);
			break;
		}
		case NADA: {
			valdev = nombre;
			break;
		}
		default: {
			logger.warn("No esta contemplado el siguiente tipo[{}]", tipo);
			break;
		}
		}
		logger.debug("El nombre del fichero sera [{}]");
		return valdev;
	}

}
